package com.bamboo.pistorage.service;

import com.bamboo.model.domain.StorageResultEntity;
import com.bamboo.model.enums.CloudVendorEnum;
import com.baomidou.mybatisplus.extension.service.IService;

import java.io.File;

/**
* @description 
* @date 2025/3/27 下午3:13
* @author chenzh
*/
public interface IStorageResultService extends IService<StorageResultEntity> {
    /**
     * @description 将上传到结果保存到数据库
     * @date 2025/3/27 下午2:51
     * @author chenzh
     * @param rowEntity 上传结果
     * @return Long
     */
    Long saveUploadResult(StorageResultEntity rowEntity);

    /**
     * @description 根据上传记录id获取上传结果
     * @date 2025/3/27 下午2:50
     * @author chenzh
     * @param id 上传记录id
     * @return StorageResultEntity
     */
    StorageResultEntity fetchUploadResult(Long id);

    /**
     * @description 根据objKey获取上传结果
     * @date 2025/3/27 下午2:50
     * @author chenzh
     * @param objKey 上传成功的文件key
     * @param cloudVendor 云厂商
     * @return StorageResultEntity
     */
    StorageResultEntity fetchUploadResult(String objKey, CloudVendorEnum cloudVendor);

    /**
     * @description 根据文件的md5判断是否已经上传过
     * @date 2025/3/27 下午4:23
     * @author chenzh
     * @param localFile 本地文件
     * @return boolean
     */
    StorageResultEntity hasUploaded(CloudVendorEnum cloudVendor, File localFile);

    /**
     * @description 根据id删除上传结果
     * @date 2025/4/3 下午4:26
     * @author chenzh
     * @param id 上传结果id
     * @return Boolean
     */
    boolean deleteUploadResult(Long id);
}
